home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 4 / BBS in a Box - Macintosh - Volume IV (January 1992) (BBS in a Box).iso / Files / Prog / M / Mac gperf 1.9.cpt / Mac gperf 1.9 / docs / ChangeLog / ChangeLog
Encoding:
Text File  |  1991-03-09  |  7.8 KB  |  176 lines  |  [TEXT/KAHL]

  1. Mon Oct 16 19:58:08 1989  Doug Schmidt  (schmidt at glacier.ics.uci.edu)
  2.  
  3.         * Fixed a number of small bugs kindly brought to my attention by
  4.           Adam de Boor (bsw!adam@uunet.UU.NET).  Thanks Adam!  In particular,
  5.           changed the behavior for the -a (ANSI) option so that the
  6.           generated prototypes use int rather than size_t for the LEN 
  7.           parameter.  It was too ugly having to #include <stddef.h> all
  8.           over the place...
  9.  
  10.         * Added a majorly neat hack to Bool_Array, suggested by rfg.
  11.           The basic idea was to throw away the Ullman array technique.
  12.           The Ullman array was used to remove the need to reinitialize all 
  13.           the Bool_Array elements to zero everytime we needed to determine
  14.           whether there were duplicate hash values in the keyword list.  
  15.           The current trick uses an `iteration number' scheme, which takes
  16.           about 1/3 the space and reduces the overall program running a 
  17.           time by about 20 percent for large input!  The hack works as 
  18.           follows:
  19.           
  20.           1. Dynamically allocation 1 boolean array of size k.
  21.           2. Initialize the boolean array to zeros, and consider the first
  22.              iteration to be iteration 1.
  23.           2. Then on all subsequent iterations we `reset' the bool array by
  24.              kicking the iteration count by 1. 
  25.           3. When it comes time to check whether a hash value is currently
  26.              in the boolean array we simply check its index location.  If
  27.              the value stored there is *not* equal to the current iteration
  28.              number then the item is clearly *not* in the set.  In that
  29.              case we assign the iteration number to that array's index
  30.              location for future reference.  Otherwise, if the item at
  31.              the index location *is* equal to the iteration number we've
  32.              found a duplicate.  No muss, no fuss!
  33.  
  34. Thu Oct 12 18:08:43 1989  Doug Schmidt  (schmidt at zola.ics.uci.edu)
  35.  
  36.         * Updated the version number to 1.9.
  37.  
  38.         * Added support for the -C option.  This makes the contents of
  39.           all generated tables `readonly'.
  40.  
  41.         * Changed the handling of generated switches so that there is
  42.           only one call to str[n]?cmp.  This *greatly* reduces the size of
  43.           the generated assembly code on all compilers I've seen.
  44.  
  45.         * Fixed a subtle bug that occurred when the -l and -S option
  46.           was given.  Code produced looked something like:
  47.  
  48.           if (len != key_len || !strcmp (s1, resword->name)) return resword;
  49.  
  50.           which doesn't make any sense.  Clearly, this should be:
  51.  
  52.           if (len == key_len && !strcmp (s1, resword->name)) return resword;
  53.  
  54. Sat Sep 30 12:55:24 1989  Doug Schmidt  (schmidt at glacier.ics.uci.edu)
  55.  
  56.         * Fixed a stupid bug in Key_List::print_hash_function that manifested
  57.           itself if the `-k$' option was given (i.e., only use the key[length]
  58.           character in the hash function).
  59.  
  60. Mon Jul 24 17:09:46 1989  Doug Schmidt  (schmidt at glacier.ics.uci.edu)
  61.  
  62.         * Fixed a bug in PRINT_MIN_MAX that resulted in MAX_INT being printed
  63.           for the MIN_KEY_LEN if there was only 1 keyword in the input file
  64.           (yeah, that's a pretty unlikely occurrence, I agree!).
  65.  
  66.         * Fixed PRINT_HASH_FUNCTION and PRINT_LOOKUP_FUNCTION in keylist.c
  67.           so that the generated functions take an unsigned int length argument.
  68.           If -a is enabled the prototype is (const char *str, size_t len).
  69.  
  70. Fri Jul 21 13:06:15 1989  Doug Schmidt  (schmidt at zola.ics.uci.edu)
  71.  
  72.         * Fixed a horrible typo in PRINT_KEYWORD_TABLE in keylist.cc
  73.           that prevented links from being printed correctly.
  74.  
  75. Sun Jul  9 17:53:28 1989  Doug Schmidt  (schmidt at glacier.ics.uci.edu)
  76.  
  77.         * Changed the ./tests subdirectory Makefile so that it 
  78.           uses $(CC) instead of gcc.
  79.  
  80. Sun Jul  2 12:14:04 1989  Doug Schmidt  (schmidt at glacier.ics.uci.edu)
  81.  
  82.         * Moved comment handling from keylist.c to readline.c.  This
  83.           simplifies the code and reduces the number of malloc calls.
  84.  
  85.         * Fixed a number of subtle bugs that occurred when -S was
  86.           combined with various and sundry options.
  87.  
  88.         * Added the -G option, that makes the generated keyword table
  89.           a global static variable, rather than hiding it inside
  90.           the lookup function.  This allows other functions to directly
  91.           access the contents in this table.
  92.  
  93. Sat Jul  1 10:12:21 1989  Doug Schmidt  (schmidt at crimee.ics.uci.edu)
  94.  
  95.         * Added the "#" feature, that allows comments inside the keyword
  96.           list from the input file.
  97.           
  98.         * Also added the -H option (user can give the name of the hash
  99.           function) and the -T option (prevents the transfer of the type decl
  100.           to the output file, which is useful if the type is already defined
  101.           elsewhere).
  102.  
  103. Fri Jun 30 18:22:35 1989  Doug Schmidt  (schmidt at crimee.ics.uci.edu)
  104.  
  105.         * Added Adam de Boor's changes.  Created an UNSET_OPTION macro.
  106.  
  107. Sat Jun 17 10:56:00 1989  Doug Schmidt  (schmidt at glacier.ics.uci.edu)
  108.  
  109.         * Modified option.h and option.c so that all mixed operations
  110.           between integers and enumerals are cast correctly to int.
  111.           This prevents errors in some brain-damaged C compilers.
  112.  
  113. Fri Jun 16 14:13:15 1989  Doug Schmidt  (schmidt at crimee.ics.uci.edu)
  114.  
  115.         * Modified the -f (FAST) option.  This now takes an argument.
  116.           The argument corresponds to the number of iterations used
  117.           to resolve collisions.  -f 0 uses the length of the
  118.           keyword list (which is what -f did before).  This makes
  119.           life much easier when dealing with large keyword files.
  120.  
  121. Wed Jun  7 23:07:13 1989  Doug Schmidt  (schmidt at zola.ics.uci.edu)
  122.  
  123.         * Updated to version 1.8 in preparation to release to Doug Lea
  124.           and FSF.
  125.  
  126.         * Added the -c (comparison) option.  Enabling this
  127.           will use the strncmp function for string comparisons.
  128.           The default is to use strcmp.
  129.  
  130. Tue Jun  6 16:32:09 1989  Doug Schmidt  (schmidt at zola.ics.uci.edu)
  131.  
  132.         * Fixed another stupid typo in xmalloc.c (XMALLOC).  I accidentally
  133.           left the ANSI-fied prototype in place.  This obviously
  134.           fails on old-style C compilers.
  135.  
  136.         * Fixed stupid typos in PRINT_SWITCH from the keylist.c.  This
  137.           caused the -D option to produce incorrect output when used
  138.           in conjunction with -p and -t.
  139.           
  140.         * Replaced the use of STRCMP with STRNCMP for the generated
  141.           C output code.          
  142.  
  143. Fri Jun  2 23:16:01 1989  Doug Schmidt  (schmidt at trinite.ics.uci.edu)
  144.  
  145.         * Added a new function (XMALLOC) and file (xmalloc.c).  All
  146.           calls to MALLOC were replaced by calls to XMALLOC.  This 
  147.           will complain when virtual memory runs out (don't laugh, 
  148.           this has happened!)
  149.  
  150. Thu Jun  1 21:10:10 1989  Doug Schmidt  (schmidt at zola.ics.uci.edu)
  151.  
  152.         * Fixed a typo in options.c that prevented the -f option
  153.           from being given on the command-line.
  154.  
  155. Wed May  3 17:48:02 1989  Doug Schmidt  (schmidt at zola.ics.uci.edu)
  156.  
  157.         * Updated to version 1.7.  This reflects the recent major changes
  158.           and the new C port.
  159.  
  160.         * Fixed a typo in perfect.c perfect_destroy that prevented the actual 
  161.           maximum hash table size from being printed.
  162.  
  163.         * Added support for the -f option.  This generates the perfect
  164.           hash function ``fast.''  It reduces the execution time of
  165.           gperf, at the cost of minimizing the range of hash values.
  166.  
  167. Tue May  2 16:23:29 1989  Doug Schmidt  (schmidt at crimee.ics.uci.edu)
  168.  
  169.         * Enabled the diagnostics dump if the debugging option is enabled.
  170.         
  171.         * Removed all calls to FREE (silly to do this at program termination).
  172.  
  173.         * Ported gperf to C.  From now on both K&R C and GNU G++ versions
  174.           will be supported.
  175.  
  176.